home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / minix / up1510.doc < prev    next >
Encoding:
Text File  |  1992-10-29  |  11.0 KB  |  251 lines

  1. Minix ST 1.5.10 upgrade guide
  2.   -- Howard Chu, July 1990
  3.  
  4.  
  5.  
  6. INTRODUCTION
  7.  
  8. This document is part of a kit for upgrading your stock, unmodified
  9. Minix ST 1.1 system to version 1.5.10, the latest official ST version.
  10. The kit goes straight to 1.5.10 with no stops along the way... Please
  11. read this entire document before doing anything to your system. We'll
  12. both be happier for it in the end.
  13.  
  14. This kit is basically a synthesis of all the work done by Frans Meulenbroeks,
  15. who posted the original upgrade material. His ":Install" installation
  16. guide is also included here, you should read the introduction there for
  17. more background info, restrictions, copyright, etc.
  18.  
  19. HARDWARE REQUIREMENTS
  20.  
  21. I did this upgrade on a system with a hard drive. I don't really want to
  22. think about doing it on a floppy-only system. I've tried, and it makes my
  23. brain hurt. The entire upgrade package compresses down to a 2.5 megabyte
  24. compressed tar file. You'll need nearly 6 megabytes of space to extract
  25. everything. You'll need around another 2.5 megabytes for all the resulting
  26. binary files. I worked out this package on a Unix system, and downloaded
  27. files to a TOS partition to be retrieved later (using tosread in Minix).
  28. If you don't have 10 megabytes of disk space attached to your ST you
  29. might consider splitting things up on a Unix box before going to your ST.
  30. This will be practical for a system with two double-sided disk drives,
  31. as the largest directory is only 500K (Kermit source).
  32.  
  33. SETTING UP
  34.  
  35. The whole kit consists of three parts, including this document. The other
  36. two parts are:
  37.     up1510a.tar - 1.5 binaries necessary for the upgrade
  38.     up1510b.tar - the complete 1.5.10 upgrade files.
  39.  
  40. I suggest extracting the up1510a tar file into your /tmp directory,
  41. and moving the files to their proper place from there. There are two
  42. versions of cv in this tar file, a 1.1 and a 1.5 version. I'm not sure
  43. that the 1.1 version works very well... I think you will need the 1.5
  44. version to create kernel.mix from kernel.out. (Sorry, when I got to this
  45. stage things weren't working very well and I didn't keep good track of
  46. what the problems were...) At any rate, you may want to grab the source
  47. for the version 1.1 cv from the 1.1fixes file (also available on terminator,
  48. er, atari.archive.umich.edu, the same place you found this stuff...). If
  49. you compile that on your 1.1 system before doing this upgrade, you will
  50. have a good, usable version 1.1 cv.
  51.  
  52. The up1510b.tar file is meant to be extracted into /usr of your Minix
  53. filesystem. You need to make some preparations before this, of course.
  54. You will only need a few parts of the 1.1 source tree, and none of the
  55. include directory. I suggest renaming them, just to keep them handy in
  56. case you have trouble with the upgrade.
  57.  
  58.     mv /usr/src /usr/src1.1
  59.     mv /usr/include /usr/include1.1
  60.     mv /usr/lib/libc.a /usr/lib/libc1.1.a
  61.  
  62. You should then make a new /usr/src directory, and copy a few files
  63. from /usr/src1.1 to it.
  64.  
  65.     mkdir /usr/src /usr/src/commands /usr/src/lib /usr/src/lib/M68000
  66.     cp /usr/src1.1/commands/dd.c /usr/src/commands
  67.     cpdir /usr/src1.1/commands/mined /usr/src/commands/mined
  68.     cpdir /usr/src1.1/commands/sh /usr/src/commands/sh
  69.     cp /usr/src1.1/lib/*.s /usr/src/lib/M68000
  70.     cpdir /usr/src1.1/fs /usr/src/fs
  71.     cpdir /usr/src1.1/kernel /usr/src/kernel
  72.     cpdir /usr/src1.1/mm /usr/src/mm
  73.  
  74. That's it for reusing 1.1 sources. Everything else is included here, as well
  75. as some patches to the above-mentioned source files. As mentioned before,
  76. you should also have the patch program from the 1.1 fixup posting. If you're
  77. feeling particularly brave, or confident that you have all your 1.1 stuff
  78. backed up safely on floppy, you can simply move the appropriate files to
  79. their new destinations instead of copying them.
  80.  
  81. You will also need to rename a few of the .s source files in the M68000
  82. directory. 
  83.     cd /usr/src/lib/M68000
  84.     mv stbrksz.s brksize.s
  85.     mv stcrtso.s crtso.s
  86.     mv stend.s end.s
  87.     mv sthead.s head.s
  88.     mv stsetjmp.s setjmp.s
  89.     mv stsndrec.s sendrec.s
  90.  
  91. If you have enough memory, you should create a system with a huge RAM disk.
  92. If you can fit all of the compiler files onto it, the compilation step will
  93. go a lot faster. (Probably talking around a 700K RAM disk here. 270K is
  94. used for /lib.)
  95.     /bin/ar        - needed after the new library is done
  96.     /bin/as        - needed for all compiles
  97.     /bin/cat    - helpful for applying the patches
  98.     /bin/cc        - needed for all compiles
  99.     /bin/chmem    - needed for most commands
  100.     /bin/chmod    - needed for some commands
  101.     /bin/compress    - actually zcat - for setup
  102.     /bin/cp        - needed for some commands
  103.     /bin/cpdir    - helpful in setup
  104.     /bin/echo    - needed for many commands (used in makefile)
  105.     /bin/ln        - needed for some installation steps
  106.     /bin/ls        - helpful
  107.     /bin/make    - needed for all compiles
  108.     /bin/mkdir    - setup
  109.     /bin/mv        - needed for library
  110.     /bin/rm        - needed for some pieces
  111.     /bin/sh        - needed for everything
  112.     /bin/tar    - setup
  113.     /bin/tos...    - setup
  114.     /lib/cem
  115.     /lib/cg
  116.     /lib/cpp
  117.     /lib/cv        - all parts of the compiler
  118.     /lib/ld
  119.     /lib/opt
  120.  
  121.  
  122. CONFIGURING THE TOOLS
  123.  
  124. These are the recommended amounts of memory for each of the compiler tools:
  125.  
  126.     cc    20000
  127.     cpp    30000
  128.     cv    50000
  129.     as    50000
  130.     ld    100000
  131.     cem    110000
  132.     cg    30000
  133.     opt    60000
  134.     sh    20000
  135.  
  136. INSTALLATION PROCESS
  137.  
  138. 1. go to /usr, extract the up1510b.tar file.
  139.    I recommend leaving the file compressed on a TOS partition, to save
  140.    space. Extract with something like:
  141.     tosread hd0a minix/upgrade.z | zcat | tar x -
  142.    (you will need the binary of tar included in up1510a.tar, which allows
  143.    reading from stdin instead of a named file.) The file Total.crc has the
  144.    full crc values for what you should have *after* applying the patches
  145.    that are also included. The directories containing patches have a file
  146.    Diff.crc containing the crc values for all the patches. You shouldn't
  147.    need to check these values, since any corruption would cause either/both
  148.    zcat or tar to fail.
  149.    [Another note - I named my hard drive devices:
  150.     hd00    - block 0        hd10 = 2nd drive, hd20 = 3rd drive
  151.     hd0a    - 1st partition        hd1a = 2nd drive, hd2a = 3rd drive
  152.     hd0b    - 2nd partition            ... etc...
  153.     hd0c    - 3rd partition
  154.     hd0d    - 4th partition
  155.     hd0e    - entire disk]
  156. 2. cd /usr/include/minix
  157.    edit the config.h file. you may want to edit boot.h, but I have no idea
  158.    what you'd want to stick in there.
  159. 3. cd /usr/src/lib; make
  160. 4. mv libc.a /usr/lib
  161.    If you're short on space, you can remove the .o files after any
  162.    successful compilation step.
  163. 4a. You may want to make the new version of make at this point. It'll come
  164.    in handy for the following compilation.
  165.    cd /usr/src/commands/make; make; mv make /bin
  166. 5. cd /usr/src/fs; cat *.D | patch
  167.      If you get any rejects, use the crc program from up1510a and compare
  168.      the crc values for the .D diff files with the values in Diff.crc.
  169.      If you're really short on space, you can "rm *~ *.D Diff.crc" after
  170.      running patch.
  171.    make
  172. 6. cd /usr/src/kernel; cat *.D | patch; make
  173. 7. cd /usr/src/mm; cat *.D | patch; make
  174. 8. cd /usr/src/tools; make
  175. 9. copy the files from /usr/etc to /etc. If /etc is on the ram disk, make
  176.    sure you copy the files to the real disk that the ram disk was loaded
  177.    from. You may want to edit the passwd file as well. I wasn't able to
  178.    log in as root after the upgrade, so I dropped back and blanked out the
  179.    root password in the new passwd file. You may also want to edit the rc
  180.    file to suit your system.
  181.    If your minix.img is larger than 0x40000 bytes (due to allocating more
  182.    buffer cache in /usr/include/minix/config.h) you will have to change the
  183.    value of ldaddr in boot.s, then remake minix.img.
  184.    copy the minix.img file to a disk.
  185. 10. cd /usr/src/test; make
  186. 11. cd /usr/src/commands; patch < *.D
  187.     (there's only one .D diff file here.)
  188. 12. cd mined; cat *.D | patch
  189. 13. cd ../sh; cat *.D | patch
  190. 14. cd .. (run make in /usr/src/commands)
  191.     You may want to go out for a while. libc took a long time, and the
  192.     other directories were so-so, but this is gonna go for *hours*...
  193.     Also, the official makefile doesn't make it particularly easy to
  194.     install the compiled files. I've put a slightly modified Makefile.hyc
  195.     here, that puts the newly created executables in /usr/src/commands/bin.
  196.     You can sort out the new binaries more easily with my makefile.
  197.     Decide what you want to do, then maybe type "make -f Makefile.hyc"
  198.     or just "make," then find something else to do.
  199.  
  200. 15. Back already, huh? Hopefully nothing died in the middle of things. You
  201.     should now be ready to install all the new commands into your /bin and
  202.     /usr/bin directories. You may want to keep backups of the 1.1 commands,
  203.     just in case. Make sure you install the new stuff on the real disk for
  204.     /bin, if /bin is a ram disk. I did something like the following:
  205.     mv /usr/bin /usr/bin1.1
  206.     mount /dev/hd0c /user
  207.     mv /user/bin /usr/rootbin1.1
  208.     mkdir /usr/bin /user/bin
  209.     cd /usr/bin1.1
  210.     for i in *;do mv /usr/src/commands/bin/$i /usr/bin; done
  211.     cd /usr/rootbin1.1
  212.     for i in *;do mv /usr/src/commands/bin/$i /user/bin; done
  213.     This preserved the layout of my original /bin and /usr/bin allocation.
  214.     You'll still have some files in /usr/src/commands/bin to move.
  215.     There will also be one or two 1.1 commands you can say goodbye to, like
  216.     uudecode and uuencode which are replaced by uud and uue, respectively.
  217. 16. Go to the dev directory on the real root disk and execute the Makedev
  218.     script from the /usr/src/tools directory. There was a typo in the official
  219.     distribution, causing tty1 (the serial port) not to be made. It's fixed
  220.     in this copy of Makedev.
  221. 17. Boot the new kernel.
  222.     If all went well, you're now running Minix 1.5.10. (There, that wasn't
  223.     so bad, was it? }-)
  224. 18. Ok, unfinished business. Move tos.arc to a TOS disk, and unarc it on your
  225.     Minix TOS disk.
  226. 19. (optionally) Run the tests in /usr/src/test. Tests 17, 18, and 20 seemed
  227.     to fail miserably on my system. Oh well.
  228. 20. Read thru the /etc/setup_usr script. You'll want to create the new
  229.     /usr/adm and /usr/spool directories.
  230. 21. You need to do some fiddling to get the ps command working. ps tries to
  231.     read the symbol tables of /usr/src/fs/fs.mix, /usr/src/kernel/kernel.mix,
  232.     and /usr/src/mm/mm.mix. The distributed makefiles don't leave the symbol
  233.     tables intact in the .mix files. I think the ast command will come in
  234.     handy here, but I haven't tried it. Instead, I added the flags
  235.     -a0:2 -a1:2 -a2:2 -a3:3
  236.     to the ld command line, and remade the .out and .mix files. That worked
  237.     fine, and ps was happy after that. (It appears that you should feed the
  238.     output of "anm kernel.out" to ast, and use it on kernel.mix. I dunno.)
  239.  
  240. I think that's it. If you have a hard drive, this installation should be
  241. pretty painless. If not, well... Go ahead and try it and tell me how you
  242. did things. If patch rejects any of the diffs, you probably didn't use the
  243. original 1.1 source. The contents of up1510b.tar are completely in sync with
  244. the PC 1.5.10 sources, except for the kernel and two header files. (a.out.h
  245. and out.h). Only binaries are provided for elle, you should be able to get
  246. the sources from another Minix archive.
  247.  
  248. Ok. Any feedback is welcome, let me know how things went.
  249.   -- Howard Chu
  250.     hyc@math.lsa.umich.edu
  251.